//
//  UPDeviceInfo.h
//  Uang Pasti
//
//  Created by 李永彬 on 2025/8/28.
//

#import "UPDeviceInfo.h"
#import <sys/utsname.h>
#import <ifaddrs.h>
#import <net/if.h>
#import <netdb.h>
#import <mach/mach.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <SystemConfiguration/CaptiveNetwork.h>
#import <NetworkExtension/NetworkExtension.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>

NS_ASSUME_NONNULL_BEGIN

// 前向声明 CTCarrier 类
@class CTCarrier;

@interface UPDeviceInfo : NSObject

// 存储信息
+ (nullable NSDictionary<NSString *, NSNumber *> *)getStorage;

// 内存信息
+ (NSDictionary<NSString *, NSNumber *> *)getSystemMemory;

// 电池信息
+ (NSDictionary<NSString *, id> *)getBatteryInfo;

// 系统版本
+ (NSString *)systemVersion;

// 设备型号代码
+ (NSString *)modelCode;

// 设备信息（名称和尺寸）
+ (nullable NSDictionary<NSString *, id> *)getDeviceInfo;

// 是否是模拟器（1: 是, 0: 否）
+ (NSInteger)isSimulator;

// 是否越狱（1: 是, 0: 否）
+ (NSInteger)isJailbroken;

// 时区ID
+ (NSString *)timezoneID;

// 是否使用代理（1: 是, 0: 否）
+ (NSInteger)isUsingProxy;

// 是否使用VPN（1: 是, 0: 否）
+ (NSInteger)isUsingVPN;

// 运营商名称
+ (NSString *)carrierName;

// 设备语言
+ (NSString *)deviceLanguage;

// 网络类型
+ (NSString *)networkType;

// 是否是手机（1: 是, 0: 否）
+ (NSInteger)isPhone;

// IP地址
+ (NSString *)ipAddress;

// MAC地址
+ (NSString *)macAddress;

@end

NS_ASSUME_NONNULL_END
